The present invention relates to telecommunication techniques. More particularly, the present invention provides a technique including methods and systems for managing the flow of information in a TCP connection over a satellite system for use in a wide area network of computers such as the Internet. The present invention provides a controlled flow of information with high speed and quality transmission of signals to a distant location over a satellite system using an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) protocol, for example. But it will be recognized that the invention has a much wider range of applicability; it can also be applied to a private bridged network, terrestrial wireless network links, and the like.
The Internet is an international xe2x80x9csuper-networkxe2x80x9d connecting together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over which no single entity has complete authority or control. Although the Internet is widely known for one of its ways of presenting information through the World Wide Web (herein xe2x80x9cWebxe2x80x9d), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is generally easy to use for people inexperienced with computers. Information on the Web can be presented on xe2x80x9cpagesxe2x80x9d of graphics and text that contain xe2x80x9clinksxe2x80x9d to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a xe2x80x9cbrowserxe2x80x9d program such as one made by Netscape Communications Corporation of Mountain View, Calif. or Microsoft Corporation of Redmond, Wash. Browser programs process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
The Internet supports many other forms of communication. For example, the Internet allows one-to-one communication via electronic mail, which is commonly known as xe2x80x9ce-mail.xe2x80x9d The Internet also has xe2x80x9cbulletin boardsxe2x80x9d which are used by users to post colorful text and graphics for others to read and respond to. For real time communication, the Internet has xe2x80x9cchat roomsxe2x80x9d and the like, which allow users to communicate to each other by way of typed messages. In some cases, the Internet can also be used for voice communication between users. All of these forms of communication are possible, at least in part, by way of an important connection, which allows information to be transmitted from many different servers on the Internet.
The Internet is based on the TCP/IP protocol suite. At the network layer, an Internet Protocol, which is known as IP, provides a mechanism to deliver packets addressed to individual computers. The Internet has a plurality of computer systems implementing IP, which are generally interconnected to each other using local area networks and dedicated transmission lines, to form a wide area network of computers. IP packets are delivered on a best effort basis and are not guaranteed to arrive at their intended destination, which is known as xe2x80x9cunreliablexe2x80x9d service.
For many applications that require reliable data delivery service, the Internet uses a connection mechanism called Transmission Control Protocol, which is known as TCP. TCP has a variety of desirable characteristics that allows it to be suitable for communication over the Internet. For example, TCP considers the data size or best sized segment of data to send from a transmitting server over the communication medium to a receiving server. Additionally, TCP maintains a timer, which waits for the receiving server to send an acknowledgment of the reception of the data segment from the transmitting server. If the timer times out before the acknowledgment is received, TCP resends the data segment, which provides reliability in the communication. TCP also maintains a checksum on its header and data, which monitors any modification in the data in transit. If the data arrives with an invalid checksum, TCP discards the data and does not acknowledge receiving the data. If data segments arrive out of order, TCP can also recombine the segments in order at the receiving server. Furthermore, TCP provides flow control, which only allows a finite amount of data to be sent to a buffer on the receiving server. This prevents a fast server computer from overflowing all the buffers on a slower server computer.
Although TCP has been well suited for transmitting Internet data between a plurality of servers, which are coupled to each other by way of conventional telephone systems and lines with similar characteristics, TCP has many limitations. For example, TCP is suitable for xe2x80x9cshort hopsxe2x80x9d but often slows down communication over extremely long distances which can have significant latency (e.g., transcontinental hops via satellite). Here, the flow control and acknowledgment features take too long to send and receive, which make communication slow. Additionally, opportunities for gains in efficiency still exist. In particular, TCP has been found to be slow and cumbersome for transmission of Internet data over a satellite network, for example. Additionally, networking using satellites often encounters significant bit error rates, which leads to further slowing of TCP connections. These and other limitations will be more fully described according to the Figs. below.
From the above, it is seen that a more efficient way of managing the transmission of information for Internet services over large geographical regions using a wireless communication media is highly desirable.
According to the present invention, a technique for controlling information flow in TCP connections over a wireless wide area network is provided. In an exemplary embodiment, the present invention provides methods and systems for controlling the rate that information flows over a TCP connection to an Xpress Transport Protocol (herein xe2x80x9cXTPxe2x80x9d) connection, for example.
In a specific embodiment, the present invention provides a method for controlling the flow of information over an internet connection established across a satellite link. The method can be operable on a large variety of systems, such as a system comprising one or more clients, one or more servers, a first gateway connected to at least one client, a second gateway connected to at least one server, and a wireless telecommunications link between these gateways. The method includes intercepting a connection attempt with a server initiated by a client. A connection can be established between a first gateway and a second gateway over the telecommunications link, that can be a satellite link or the like. The method can include a step of determining a round trip time for data to travel from the client to the server over the connection. A data rate for the connection can also be determined. From the round trip time and the data rate, a bandwidth delay product can be determined by the method. The method can also determine a flow control limit for the connection from the bandwidth delay product. A step of limiting data transfer over the connection based upon the flow control limit can be part of the method. The combination of such steps as these can provide a method for controlling the flow of TCP data over networks spanning large geographical regions using a wireless communication media, and the like.
In another embodiment, the present invention can select from among connections, ones that can benefit available system resources by being flow controlled. Some embodiments can screen for flow control those connections that are not initializing, or are transferring data in blocks below a threshold value, or above a threshold value and the like. In many embodiments, a bandwidth delay product for the connection can be determined by multiplying round trip time and data rate. In some embodiments, a flow control limit for a connection can be determined by multiplying bandwidth delay product by a scaling factor and dividing by a number of connections for the link.
In another aspect of the present invention, a system for controlling the flow of information over a satellite is provided. The system can include at least one client, selected from a plurality of potential clients and at least one server, selected from a plurality of potential servers. The system can also include a first gateway, connected to the client by a first telecommunications link, and a second gateway, connected to the server by a second telecommunications link. A third telecommunications link connecting the first gateway to the second gateway can also be part of the system. The system is operative to determine a round trip time for data to traverse from the client over the first telecommunications link, the second telecommunications link and the third telecommunications link to the server over a connection. The system can determine a data rate for the connection. Further, the system can determine a bandwidth delay product from the round trip time and the data rate. The system can determine a flow control limit for the connection from the bandwidth delay product and limit data transfer over the connection based upon the flow control limit. Limiting data transfer in such a manner can interface relatively fast data transfer on the telecommunications links to a relatively slower data transfer rate in the client, for example.
In a yet further aspect according to the present invention, a computer program product for controlling the flow of information over a wireless data link is provided. The data link can comprise one or more connections. The computer program product comprises a computer readable storage medium for holding a plurality of code. Code for determining a round trip time for data to traverse the wireless data link over a connection can be part of the product. Further, the computer program product can include code for determining a data rate for the connection. Code for determining a bandwidth delay product from the round trip time and the data rate can also be included. Code for determining a flow control limit for the connection from the bandwidth delay product and code for limiting data transfer over the connection based upon the flow control limit can also be part of the computer program product.
Numerous benefits are achieved by way of the present invention over conventional techniques. In a specific embodiment, the present invention provides a more even distribution of network resources than conventional systems. Many embodiments according to the present invention provide for sharing a network/satellite link between connections. In many embodiments, it is less likely that a burst of data from one particular connection will be queued for transmission over the link in front of data for other connections. In other embodiments, the present invention provides for data flow control in a long latency, high loss, asymmetric bandwidth communications medium, which is typical of satellite communications. The present invention also provides for relatively easy implementation into a conventional satellite system. Depending upon the embodiment, one or more of these benefits can be present. These and other advantages or benefits are described throughout the present specification and are described more particularly below.
These and other embodiments of the present invention are described in more detail in conjunction with the text below and attached Figs.